Continuous data protection enables a user to be able to access or restore a previous state with finer time granularity than previously offered by some traditional backup solutions. For example, some traditional backup solutions perform backups at discrete points in time that are separated by hours or even days. The only previous states that a user is able to restore are the states corresponding to those points in time. With continuous data protection, data (e.g., a file or other data associated with a continuously protected device) is continuously protected over a window of time and a user is able to access almost any prior state within that window. For example, using some continuous data protection systems a user can access or restore saved states that are seconds or fraction of seconds apart.
To continuously protect data, previous version data is obtained and stored. Typically, storage used to store previous version data is reclaimed as the data stored in particular locations is no longer required to be retained, e.g., because it relates to states that fall outside (i.e., prior to the earliest/beginning edge of) the rolling window described above. However, in some cases previous version data that falls outside the continuous data protection window may need to be retained, e.g., because a user has indicated the data is desired to be available to be used to restore a data set or one or more data objects comprising the set. Such a need may result in some of the previous version data, or “captured writes”, to be locked to prevent the associated storage locations from being reclaimed and reused. However, writes so locked may include both writes to blocks for which there is a continuing need for the corresponding previous version data and writes to blocks for which the previous version data is no longer required. Therefore, there is a need for a way to prevent efficiently reclamation and reuse of storage locations in which previous version data that has fallen outside the continuous data protection window but which still is required is stored, without also preventing reclamation and reuse of storage in which previous version data that is no longer required is stored.